/***************************************************************
 *文件名：lib_gpio_func_es8h0183fllk.h
 *作 者： AE Team
 *版 本： V1.00
 *日 期： 2023/12/13
 *描 述： ES8H0183FLLK GPIO数字外设管脚复用功能定义头文件
 *备 注：
 * Copyright (C) Shanghai Eastsoft Microelectronics Co. Ltd. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the License); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ***************************************************************/
#ifndef __LIB_GPIO_FUNC_ES8H0183FLLK_H__
#define __LIB_GPIO_FUNC_ES8H0183FLLK_H__

/* PB24 */
typedef enum
{
	FUNC_PB24 = 0x00,
	FUNC_PB24_BUZ = 0x01,
	FUNC_PB24_T16N5_0 = 0x02,
	FUNC_PB24_MISO0 = 0x03,
	FUNC_PB24_RXD1 = 0x04,
	FUNC_PB24_T16N3_0 = 0x05,
	FUNC_PB24_T32N0_0 = 0x06,
	FUNC_PB24_TXD5 = 0x07,
} FUNC_TYPE_PB24;

/* PB25 */
typedef enum
{
	FUNC_PB25 = 0x00,
	FUNC_PB25_T16N1_0 = 0x01,
	FUNC_PB25_T16N5_1 = 0x02,
	FUNC_PB25_MOSI0 = 0x03,
	FUNC_PB25_TXD5 = 0x04,
	FUNC_PB25_SCK0 = 0x05,
	FUNC_PB25_T16N0_1 = 0x06,
	FUNC_PB25_RXD1 = 0x07,
} FUNC_TYPE_PB25;

/* PA13 */
typedef enum
{
	FUNC_PA13 = 0x00,
	FUNC_PA13_T32N0_1 = 0x01,
	FUNC_PA13_TXD3 = 0x02,
	FUNC_PA13_MOSI0 = 0x03,
	FUNC_PA13_TXD5 = 0x04,
	FUNC_PA13_BUZ = 0x05,
	FUNC_PA13_T16N4_0 = 0x06,
	FUNC_PA13_SCL0 = 0x07,
} FUNC_TYPE_PA13;

/* PA14 */
typedef enum
{
	FUNC_PA14 = 0x00,
	FUNC_PA14_T16N1_1 = 0x01,
	FUNC_PA14_RXD3 = 0x02,
	FUNC_PA14_T16N2_0 = 0x03,
	FUNC_PA14_RXD5 = 0x04,
	FUNC_PA14_TXD2 = 0x05,
	FUNC_PA14_T16N0_0 = 0x06,
	FUNC_PA14_SDA0 = 0x07,
} FUNC_TYPE_PA14;

/* PA15 */
typedef enum
{
	FUNC_PA15 = 0x00,
	FUNC_PA15_TXD5 = 0x01,
	FUNC_PA15_TXD2 = 0x02,
	FUNC_PA15_T16N2_1 = 0x03,
	FUNC_PA15_SDA0 = 0x04,
	FUNC_PA15_T16N1_0 = 0x05,
	FUNC_PA15_T16N0_1 = 0x06,
	FUNC_PA15_RXD2 = 0x07,
} FUNC_TYPE_PA15;

/* PA17 */
typedef enum
{
	FUNC_PA17 = 0x00,
	FUNC_PA17_TXD1 = 0x01,
	FUNC_PA17_T16N0_0 = 0x02,
	FUNC_PA17_T16N1_0 = 0x03,
	FUNC_PA17_SCL0 = 0x04,
	FUNC_PA17_T32N0_0 = 0x05,
	FUNC_PA17_RXD1 = 0x06,
	FUNC_PA17_RXD0 = 0x07,
} FUNC_TYPE_PA17;

/* PA18 */
typedef enum
{
	FUNC_PA18 = 0x00,
	FUNC_PA18_RXD1 = 0x01,
	FUNC_PA18_SDA0 = 0x02,
	FUNC_PA18_T16N1_1 = 0x03,
	FUNC_PA18_SCL0 = 0x04,
	FUNC_PA18_T16N5_1 = 0x05,
	FUNC_PA18_TXD0 = 0x06,
	FUNC_PA18_T32N0_1 = 0x07,
} FUNC_TYPE_PA18;

/* PA19 */
typedef enum
{
	FUNC_PA19 = 0x00,
	FUNC_PA19_T16N0_0 = 0x01,
	FUNC_PA19_SCL0 = 0x02,
	FUNC_PA19_TXD0 = 0x03,
	FUNC_PA19_RXD3 = 0x04,
	FUNC_PA19_T16N4_0 = 0x05,
	FUNC_PA19_NSS0 = 0x06,
	FUNC_PA19_BUZ = 0x07,
} FUNC_TYPE_PA19;

/* PA21 */
typedef enum
{
	FUNC_PA21 = 0x00,
	FUNC_PA21_T32N0_0 = 0x01,
	FUNC_PA21_TXD4 = 0x02,
	FUNC_PA21_T16N3_0 = 0x03,
	FUNC_PA21_T16N0_0 = 0x04,
	FUNC_PA21_BUZ = 0x05,
	FUNC_PA21_RXD5 = 0x06,
	FUNC_PA21_RXD0 = 0x07,
} FUNC_TYPE_PA21;

/* PA29 */
typedef enum
{
	FUNC_PA29 = 0x00,
	FUNC_PA29_NSS0 = 0x01,
	FUNC_PA29_TXD3 = 0x02,
	FUNC_PA29_T16N2_1 = 0x03,
	FUNC_PA29_RXD2 = 0x04,
	FUNC_PA29_MOSI0 = 0x05,
	FUNC_PA29_T32N0_1 = 0x06,
	FUNC_PA29_SCL0 = 0x07,
} FUNC_TYPE_PA29;

/* PB0 */
typedef enum
{
	FUNC_PB0 = 0x00,
	FUNC_PB0_TXD0 = 0x01,
	FUNC_PB0_RXD0 = 0x02,
	FUNC_PB0_T32N0_0 = 0x03,
	FUNC_PB0_SDA0 = 0x04,
	FUNC_PB0_T16N4_1 = 0x05,
	FUNC_PB0_T16N5_1 = 0x06,
	FUNC_PB0_RXD1 = 0x07,
} FUNC_TYPE_PB0;

/* PB1 */
typedef enum
{
	FUNC_PB1 = 0x00,
	FUNC_PB1_RXD4 = 0x01,
	FUNC_PB1_TXD0 = 0x02,
	FUNC_PB1_T32N0_1 = 0x03,
	FUNC_PB1_SCK0 = 0x04,
	FUNC_PB1_T16N2_1 = 0x05,
	FUNC_PB1_TXD5 = 0x06,
	FUNC_PB1_SCL0 = 0x07,
} FUNC_TYPE_PB1;

/* PB2 */
typedef enum
{
	FUNC_PB2 = 0x00,
	FUNC_PB2_T32N0_0 = 0x01,
	FUNC_PB2_RXD1 = 0x02,
	FUNC_PB2_T16N3_0 = 0x03,
	FUNC_PB2_T16N4_1 = 0x04,
	FUNC_PB2_T16N5_0 = 0x05,
	FUNC_PB2_RXD0 = 0x06,
	FUNC_PB2_TXD1 = 0x07,
} FUNC_TYPE_PB2;

/* PB7 */
typedef enum
{
	FUNC_PB7 = 0x00,
	FUNC_PB7_T16N1_1 = 0x01,
	FUNC_PB7_MOSI0 = 0x02,
	FUNC_PB7_TXD2 = 0x03,
	FUNC_PB7_T32N0_0 = 0x04,
	FUNC_PB7_TXD3 = 0x05,
	FUNC_PB7_T16N3_1 = 0x06,
	FUNC_PB7_SDA0 = 0x07,
} FUNC_TYPE_PB7;

/* PB8 */
typedef enum
{
	FUNC_PB8 = 0x00,
	FUNC_PB8_BUZ = 0x01,
	FUNC_PB8_RXD3 = 0x02,
	FUNC_PB8_T16N2_0 = 0x03,
	FUNC_PB8_TXD4 = 0x04,
	FUNC_PB8_RXD2 = 0x05,
	FUNC_PB8_T16N3_0 = 0x06,
	FUNC_PB8_T16N0_0 = 0x07,
} FUNC_TYPE_PB8;

/* PB9 */
typedef enum
{
	FUNC_PB9 = 0x00,
	FUNC_PB9_BUZ = 0x01,
	FUNC_PB9_TXD3 = 0x02,
	FUNC_PB9_T16N2_1 = 0x03,
	FUNC_PB9_MOSI0 = 0x04,
	FUNC_PB9_T32N0_1 = 0x05,
	FUNC_PB9_T16N4_0 = 0x06,
	FUNC_PB9_RXD4 = 0x07,
} FUNC_TYPE_PB9;

/* PB10 */
typedef enum
{
	FUNC_PB10 = 0x00,
	FUNC_PB10_RXD4 = 0x01,
	FUNC_PB10_NSS0 = 0x02,
	FUNC_PB10_T16N5_0 = 0x03,
	FUNC_PB10_TXD1 = 0x04,
	FUNC_PB10_T16N0_1 = 0x05,
	FUNC_PB10_SCL0 = 0x06,
	FUNC_PB10_TXD4 = 0x07,
} FUNC_TYPE_PB10;

/* PB11 */
typedef enum
{
	FUNC_PB11 = 0x00,
	FUNC_PB11_TXD4 = 0x01,
	FUNC_PB11_SCK0 = 0x02,
	FUNC_PB11_T16N5_1 = 0x03,
	FUNC_PB11_RXD1 = 0x04,
	FUNC_PB11_T16N4_1 = 0x05,
	FUNC_PB11_SDA0 = 0x06,
	FUNC_PB11_RXD5 = 0x07,
} FUNC_TYPE_PB11;

/* PB12 */
typedef enum
{
	FUNC_PB12 = 0x00,
	FUNC_PB12_RXD5 = 0x01,
	FUNC_PB12_MISO0 = 0x02,
	FUNC_PB12_T32N0_1 = 0x03,
	FUNC_PB12_T16N0_0 = 0x04,
	FUNC_PB12_T16N1_1 = 0x05,
	FUNC_PB12_TXD4 = 0x06,
	FUNC_PB12_TXD5 = 0x07,
} FUNC_TYPE_PB12;

/* PB13 */
typedef enum
{
	FUNC_PB13 = 0x00,
	FUNC_PB13_TXD5 = 0x01,
	FUNC_PB13_MOSI0 = 0x02,
	FUNC_PB13_SCL0 = 0x03,
	FUNC_PB13_T16N2_1 = 0x04,
	FUNC_PB13_T32N0_0 = 0x05,
	FUNC_PB13_RXD5 = 0x06,
	FUNC_PB13_TXD3 = 0x07,
} FUNC_TYPE_PB13;

/* PA0 */
typedef enum
{
	FUNC_PA0 = 0x00,
	FUNC_PA0_RXD4 = 0x01,
	FUNC_PA0_T16N3_0 = 0x02,
	FUNC_PA0_BUZ = 0x03,
	FUNC_PA0_T16N5_1 = 0x04,
	FUNC_PA0_T32N0_0 = 0x05,
	FUNC_PA0_T16N4_1 = 0x06,
	FUNC_PA0_TXD4 = 0x07,
} FUNC_TYPE_PA0;

/* PA2 */
typedef enum
{
	FUNC_PA2 = 0x00,
	FUNC_PA2_RXD5 = 0x01,
	FUNC_PA2_T32N0_0 = 0x02,
	FUNC_PA2_RXD3 = 0x03,
	FUNC_PA2_TXD0 = 0x04,
	FUNC_PA2_T16N0_1 = 0x05,
	FUNC_PA2_CLKO0 = 0x06,
	FUNC_PA2_RXD1 = 0x07,
} FUNC_TYPE_PA2;

/* PA7 */
typedef enum
{
	FUNC_PA7 = 0x00,
	FUNC_PA7_T16N2_0 = 0x01,
	FUNC_PA7_T16N0_1 = 0x02,
	FUNC_PA7_TXD1 = 0x03,
	FUNC_PA7_T16N1_1 = 0x04,
	FUNC_PA7_RXD4 = 0x05,
	FUNC_PA7_RXD3 = 0x06,
	FUNC_PA7_NSS0 = 0x07,
} FUNC_TYPE_PA7;

/* PA8 */
typedef enum
{
	FUNC_PA8 = 0x00,
	FUNC_PA8_RXD0 = 0x01,
	FUNC_PA8_T16N1_0 = 0x02,
	FUNC_PA8_BUZ = 0x03,
	FUNC_PA8_MISO0 = 0x04,
	FUNC_PA8_T32N0_1 = 0x05,
	FUNC_PA8_TXD3 = 0x06,
	FUNC_PA8_T16N2_0 = 0x07,
} FUNC_TYPE_PA8;

/* PA9 */
typedef enum
{
	FUNC_PA9 = 0x00,
	FUNC_PA9_TXD0 = 0x01,
	FUNC_PA9_T16N1_1 = 0x02,
	FUNC_PA9_CLKO0 = 0x03,
	FUNC_PA9_TXD2 = 0x04,
	FUNC_PA9_T16N5_0 = 0x05,
	FUNC_PA9_MISO0 = 0x06,
	FUNC_PA9_T16N2_1 = 0x07,
} FUNC_TYPE_PA9;

/* PA10 */
typedef enum
{
	FUNC_PA10 = 0x00,
	FUNC_PA10_T16N2_0 = 0x01,
	FUNC_PA10_RXD4 = 0x02,
	FUNC_PA10_NSS0 = 0x03,
	FUNC_PA10_RXD2 = 0x04,
	FUNC_PA10_T16N4_0 = 0x05,
	FUNC_PA10_SCK0 = 0x06,
	FUNC_PA10_TXD4 = 0x07,
} FUNC_TYPE_PA10;

/* PA11 */
typedef enum
{
	FUNC_PA11 = 0x00,
	FUNC_PA11_T16N2_1 = 0x01,
	FUNC_PA11_TXD4 = 0x02,
	FUNC_PA11_SCK0 = 0x03,
	FUNC_PA11_T16N1_0 = 0x04,
	FUNC_PA11_RXD3 = 0x05,
	FUNC_PA11_SCL0 = 0x06,
	FUNC_PA11_MISO0 = 0x07,
} FUNC_TYPE_PA11;

/* PA12 */
typedef enum
{
	FUNC_PA12 = 0x00,
	FUNC_PA12_T32N0_0 = 0x01,
	FUNC_PA12_BUZ = 0x02,
	FUNC_PA12_MISO0 = 0x03,
	FUNC_PA12_T16N1_1 = 0x04,
	FUNC_PA12_TXD3 = 0x05,
	FUNC_PA12_RXD0 = 0x06,
	FUNC_PA12_T16N0_0 = 0x07,
} FUNC_TYPE_PA12;

/* PB20 */
typedef enum
{
	FUNC_PB20 = 0x00,
	FUNC_PB20_RXD0 = 0x01,
	FUNC_PB20_T16N0_1 = 0x02,
	FUNC_PB20_RXD1 = 0x03,
	FUNC_PB20_RXD4 = 0x04,
	FUNC_PB20_T16N5_0 = 0x05,
	FUNC_PB20_CLKO0 = 0x06,
	FUNC_PB20_SDA0 = 0x07,
} FUNC_TYPE_PB20;

#endif
